
// 欧尚（中国）投资有限公司
var spider = require('../../dao/spider');
var cheerio = require('cheerio');
var url_node = require('url');
var Iconv = require('iconv-lite');
var pinyin = require('node-pinyin');
var insertDB = require('../../dao/insert.db');
var utils = require('../../dao/utils');
var request = require('request');
var fs = require('fs');


var url = 'https://www.ajinga.com/search-company-jobs/?keywords=&job_industry_id=&job_type_id=&job_salary_id=&job_work_time_id=&role_type=&area_city_id=&area_region_id=&area_id=&only_referral=&only_count=0&page=*PageReplace*&company_id=5115&_=1520401729983';

var page = {
    curPage: 1,
    totalPage: 1
};


// spider.pageNext(url, page, callback);

module.exports = function (successCall) {
    spider.successCall = successCall;
    spider.pageNext(url, page, callback);
};


function callback(err, body, _url) {
    if (err) {
        console.log(err);
        return;
    }

    var res;
    try {
        res = body.toString('utf-8');
        res = JSON.parse(res);
    } catch (e) {
        console.log(e);
    }
    console.log(res.count);
    if (!res.isLastPage) {
        page.curPage++;
        page.totalPage++;
        setTimeout(() => {
            spider.pageNext(url, page, callback);
        }, 1000);
    }else{
        console.log('xxxxxxxxxxxxxxxxxxxxxxxxxxx');
        spider.successCall(null,'success');
        spider.successCall = function(){};
    }

    dataInit(res.data, _url);


    
}


// page页数据处理
function dataInit(jobs, _url) {

    var urlObj = url_node.parse(url);
    var protocol = urlObj.protocol;
    var hostname = urlObj.hostname;

    var host = protocol + "//" + hostname;

    for (var i = 0; i < jobs.length; i++) {
        var item = jobs[i];

        var citys = [];
        var address = [];
        for (var k = 0; k < item.locations.length; k++) {

            citys.push(item.locations[k]['city']);
            address.push(item.locations[k]['city'] + "-" + item.locations[k]['address']);
        }

        citys = citys.join(',');
        var salary;
        if (item.salary.indexOf('K') !== -1) {
            salary = item.salary.replace(/K/g, '');
            salary = salary.replace('/月', '');
            salary = salary.split('-');
            salary[0] = salary[0] * 1000;
            salary[1] = salary[1] * 1000;
        } else {
            salary = [];
        }



        var data = {
            "url": host + item['url'],  // jd详情页的地址
            'edu': '', // 最低学历
            'exp': [], // 所需工作经验，比如[3,5]表示3到5年,[3]表示3年，[]表示无经验要求
            'name': item.title, // 职位名称*
            'date': item.created_time, // 职位发布日期，字符串形式即可，后期统一转换
            'lang': '', // 对语言的要求
            'place': address, // 办公具体地址
            'major': '', // 专业要求
            'count': '', // 招聘数量
            'salary': salary, // 薪资待遇，[5000,8000]表示月薪5到8千，[4000]表示4千，[]表示没有写明
            'toSchool': true, // 是否是面向校园招聘，本次官网抓取一律都是校园招聘，所以此处都是True
            'welfare': [], // 福利待遇，比如五险一金、十三薪之类的，保存成数组
            'funType': item.job_type, // 职能类型，比如证券经纪人是证券/期货/外汇经纪人
            'company': '欧尚（中国）投资有限公司', // 企业名称
            'location': citys, // 所在城市
            'industry': '',// 企业所在行业
            'keywords': [], // 此岗位的搜索关键字 
            'platform': 'offical',// 针对官网抓取时此处一律保存为offical
            'searchKeyword': '',// 搜索的关键字，由于是官网抓取所以此处一律为空字符串
            'description': '',// 职位的详细描述，包括职责、要求之类的
            'subIndustry': '',// 一律为空字符串
            'stime': new Date() // 抓取时间
        };
        getDetail(data);

    }
}


function getDetail(data) {
    request({ url: data['url'], encoding: null }, function (err, res, body) {
        var res;
        try {
            res = body.toString('utf-8');
        } catch (e) {


        }
        // console.log(res);

        var $ = cheerio.load(res);

        data['description'] = $(".job_des").text();

        insertDB(data);
    });
}